<?php

require_once 'config.php';
require_once 'SC/SCmedia.php';
require_once 'SC/SCanimal.php';


/**
 * Classe permettant de gérer les informations et les fichiers Medias
 *
 * @author Zikrija, Alain
 */

class SFmedia {
    /**
     * Upload un fichier
     * 
     * @param POST post fichier
     * @return string nom de fichier uploadé 
     */
    public function uploadMedia($mediaURL){
        $dossier = "uploads/";// 
        $unMediaUploade = null;
        $fichier = basename($_FILES['photoProfil']['name']);
        $taille_maxi = 2097152;
        $taille = filesize($_FILES['photoProfil']['tmp_name']);
        $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG','.JPEG','.GIF','.PNG','.xls','.doc','.ppt','.xlsx',
            '.docx','.pptx','.pdf','.PDF','txt','wmv','avi','mov','mpeg','mpeg','flv','mp4');
        
        
        $extension = strrchr($_FILES['photoProfil']['name'], '.'); 
        //Début des vérifications de sécurité...

        if(in_array($extension, $extensions) && $taille<=$taille_maxi){ //S'il n'y a pas d'erreur, on upload
             //On formate le nom du fichier ici...
             $fichier = rand(10000, 99999999).date("Y_m_d_h_i_s", time()).$extension;
             
             if(move_uploaded_file($_FILES['photoProfil']['tmp_name'], $dossier . $fichier)){ //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
                  $unMediaUploade = $fichier;
             }
        }
        return $unMediaUploade;
    }
    
    
    /**
     * Service Fonctionnel permettant d'ajouter un media
     * @param Media Un média à ajouter
     * @return Media un media ajouté 
     */
    public function ajouterMediaAnimal(Media $media){
        $unMediaAjoute = null;
        
        $SCanimal = new SCanimal();
        $SCmedia = new SCmedia();
        
        // Vérifie l'existance d'un animal
        $unAnimalValide = $SCanimal->lister(new Animal($media->getAnimal_id(), null, null, null, null, null, null, null, null, null, null, null, null, null, null));
        if($unAnimalValide['0']){
            // Vérifie l'inexistance du média
            $unMediaExistant = $SCmedia->lister(new Media($media->getUrl(), null, null, null, null, null));
            if(!isset($unMediaExistant)){
                $unMediaAjoute = $SCmedia->ajouter($media);
            }
        }
        return $unMediaAjoute;
    }
    
/**
     * Service Fonctionnel permettant de lister les médias
     * @param Media Objet média contenant les critères de sélection
     * @return Media[] Une liste de médias correspondant aux critères de selection 
     */
    public function lister(Media $mediaARechercher) {
        $SCmedia = new SCmedia();
        return $SCmedia->lister($mediaARechercher);
    }
    
    
    /**
     * Methode permettant de supprimer un Media
     * @param string url du média a supprimer 
     */
    public function supprimerMedia($mediaUrl){
        $unMediaSupprime = false;
        $SCmedia = new SCmedia();
        // Vérifie l'existance du média
        $unMediaExistant = $SCmedia->lister(new Media($mediaUrl, null, null, null, null, null));
        if($unMediaExistant['0']){
            $unMediaSupprime = $SCmedia->supprimer($unMediaExistant['0']->getUrl());
            //unlink('uploads/'.$unMediaExistant['0']->getUrl());
            $unMediaSupprime = true;
        }
        return $unMediaSupprime;
    }
    
    
}

?>
